package com.lh.java.basic.grammer;

class Info5<T, V> { // 接收两个泛型类型
	private T var;
	private V value;

	public Info5(T var, V value) {
		this.setVar(var);
		this.setValue(value);
	}

	public void setVar(T var) {
		this.var = var;
	}

	public void setValue(V value) {
		this.value = value;
	}

	public T getVar() {
		return this.var;
	}

	public V getValue() {
		return this.value;
	}
};

class Demo<S> {
	private S Info5;

	public Demo(S Info5) {
		this.setInfo5(Info5);
	}

	public void setInfo5(S Info5) {
		this.Info5 = Info5;
	}

	public S getInfo5() {
		return this.Info5;
	}
};

public class GenericsDemo31 {
	public static void main(String args[]) {
		Demo<Info5<String, Integer>> d = null; // 将Info5作为Demo的泛型类型
		Info5<String, Integer> i = null; // Info5指定两个泛型类型
		i = new Info5<String, Integer>("汤姆", 30); // 实例化Info5对象
		d = new Demo<Info5<String, Integer>>(i); // 在Demo类中设置Info5类的对象
		System.out.println("内容一：" + d.getInfo5().getVar());
		System.out.println("内容二：" + d.getInfo5().getValue());
	}
};